/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package DAO;

import Modele.Velo;
import java.util.ArrayList;

/**
 *
 * @author 20cent
 */
public interface VeloDao {
    
    /**
     * Insérer un vélo en BDD
     * @param velo
     * @throws DAOException 
     */
    void save(Velo velo)throws DAOException;
    
    /**
     * Méttre à jour un vélo
     * @param velo,  stationId
     * @throws DAOException 
     */
    void update(Velo velo, int stationId) throws DAOException;
    
    /**
     * Supprimer  un vélo de la BDD
     * @param velo
     * @throws DAOException 
     */
    void delete(Velo velo) throws DAOException;
    
    
    /**
     * Récupérer un vélo avec son ID
     * @param ID
     * @throws DAOException 
     */
    Velo getByID(int ID) throws DAOException;
    
    /**
     * Récupérer un vélo avec son numero de série
     * @param serial
     * @throws DAOException 
     */
    Velo getBySerial(int serial) throws DAOException;
    
    /**
     * Récupérer tous les vélos d'une station
     * @param stationId
     * @return Liste de vélo
     * @throws DAOException 
     */
    ArrayList<Velo> getByStation(int stationId) throws DAOException;
    
    /**
     * Récupérer tous les vélos
     * @param page
     * @return liste de vélo
     * @throws DAOException 
     */
    ArrayList<Velo> getAll(int page) throws DAOException;
}
